package com.ruoyi.manage.mapper;

import com.ruoyi.manage.domain.Smallarea;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 小区 数据层
 * 
 * @author KEXUE
 * @date 2019-04-18
 */
public interface SmallareaMapper 
{
	/**
	 * 查询小区人数
	 *
	 * @param smallarea 小区信息
	 * @return 结果
	 */
	public int selectSmallareaCount(Smallarea smallarea);

	/**
	 * 查询小区是否存在用户
	 *
	 * @param smallareaId 小区ID
	 * @return 结果
	 */
	public int checkSmallareaExistUser(Long smallareaId);

	/**
	 * 查询小区管理数据
	 *
	 * @param smallarea 小区信息
	 * @return 小区信息集合
	 */
	public List<Smallarea> selectSmallareaList(Smallarea smallarea);

	/**
	 * 删除小区管理信息
	 *
	 * @param smallareaId 小区ID
	 * @return 结果
	 */
	public int deleteSmallareaById(Long smallareaId);

	/**
	 * 新增小区信息
	 *
	 * @param smallarea 小区信息
	 * @return 结果
	 */
	public int insertSmallarea(Smallarea smallarea);

	/**
	 * 修改小区信息
	 *
	 * @param smallarea 小区信息
	 * @return 结果
	 */
	public int updateSmallarea(Smallarea smallarea);

	/**
	 * 修改子元素关系
	 *
	 * @param smallareas 子元素
	 * @return 结果
	 */
	public int updateSmallareaChildren(@Param("smallareas") List<Smallarea> smallareas);

	/**
	 * 根据小区ID查询信息
	 *
	 * @param smallareaId 小区ID
	 * @return 小区信息
	 */
	public Smallarea selectSmallareaById(Long smallareaId);

	/**
	 * 校验小区名称是否唯一
	 *
	 * @param smallareaName 小区名称
	 * @param parentId 父小区ID
	 * @return 结果
	 */
	public Smallarea checkSmallareaNameUnique(@Param("smallareaName") String smallareaName, @Param("parentId") Long parentId);

	/**
	 * 根据角色ID查询小区
	 *
	 * @param roleId 角色ID
	 * @return 小区列表
	 */
	public List<String> selectRoleSmallareaTree(Long roleId);

	/**
	 * 修改所在小区的父级小区状态
	 *
	 * @param smallarea 小区
	 */
	public void updateSmallareaStatus(Smallarea smallarea);
	
}